Equal Cost Multipath (“ECMP”) is widely used in modern networks to load balance network traffic across various paths to a destination. Network devices use packet parameters such as IP addresses and port numbers, for example, to load balance traffic across available equal cost paths. A network application, such as Bidirectional Forwarding Detection (“BFD”) or Multiprotocol Label Switching (“MPLS”) Delay Measurement may require knowledge of ECMP in the network to provide full coverage for the network. In the case of BFD, lack of this coverage translates to only a subset of paths being monitored for faults while customer traffic may be going over any combination of ECMP from ingress to egress. However, adding ECMP path discovery capability is often either impractical due to existing specifications or expensive and redundant from an application engineering point of view. Instead of each application discovering its own ECMP, this work can be offloaded to another tool designed specifically for the purpose of discovering networks paths based on load balancing criteria provided for the application.
An MPLS Label Switched Path (“LSP”) Tree Trace feature provides the ability to deterministically discover all possible ECMP of an LSP by altering the destination address, while maintaining other flow parameters constant. Subsequently, an MPLS echo request packet that uses the discovered destination address will load-balance over the same ECMP identified by Tree Trace; however, the paths discovered in this manner are valid only for MPLS echo request flows, using the same source and destination IP addresses and port numbers used for discovery. If an application such as Multi-Hop BFD, using a different source port or destination port, attempts to directly use the discovered destination address of a particular path, hardware may load balance the flow into a diverging path.